package xyz.xiaotugou.dataStructure.stack;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 
 * @Title:  MyStack   
 * @Package xyz.xiaotugou.dataStructure   
 * @Description:   基于队列实现一个栈
 * @author: ysy    
 * @date:   2020年9月1日 上午10:07:59  
 * @version V1.0
 */
public class MyStackBaseOnQueue {
	private Queue<Integer> q1;
    private Queue<Integer> q2;

    /*
     * 构造方法：初始化两个队列
     */
    public MyStackBaseOnQueue() {
        q1 = new LinkedList<>();
        q2 = new LinkedList<>();
    }

    /*
     * 入栈
     */
    public void push(int x) {
        q1.add(x);
        while (!empty()){
            q1.add(q2.poll());
        }
        Queue<Integer> temp = q1;
        q1 = q2;
        q2 = temp;

    }

    /*
     * 出栈
     */
    public int pop() {
       return q2.poll();
    }

    /*
     * 获取栈顶元素
     */
    public int top() {
        return q2.peek();
    }

    /*
     * 对栈进行判空
     */
    public boolean empty() {
        return q2.isEmpty();
    }

}
